package cn.lhf.cd.mapper;

import cn.lhf.cd.entity.User;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

public interface UserMapper {
    /**
     * 登录
     * @param id       用户id
     * @param password 用户密码
     * @return 登成功，返回true
     */
    boolean login(@Param("id") Integer id, @Param("password") String password);

    /**
     * 添加用户
     * @param user 用户信息
     */
    void add(User user);

    /**
     * 获取用户表
     * @return 用户表
     */
    List<Integer> getIds();

    /**
     * 获取用户数量
     * @return 用户数量
     */
    int count();

    /**
     * 获取用户密码
     * @param id 用户id
     * @return  密码
     */
    String getPassword(@Param("id") Integer id);

    /**
     * 更改密码
     * @param id       用户id
     * @param password 新密码
     */
    void changePassword(@Param("id") Integer id, @Param("password") String password);

    /**
     * 获取用户余额
     * @param id 用户id
     * @return  余额
     */
    BigDecimal getMoney(@Param("id") Integer id);

    /**
     * 扣除用户余额
     * @param id  用户id
     * @param val 扣除的量
     */
    void withdrawMoney(@Param("id") Integer id, @Param("val") BigDecimal val);

    /**
     * 增加用户余额
     * @param id  用户id
     * @param val 增加的量
     */
    void plusMoney(@Param("id") Integer id, @Param("val") BigDecimal val);

    /**
     * 判断用户是否存在
     * @param id 用户id
     * @return  存在这个用户返回true
     */
    boolean existsById(@Param("id") Integer id);
}
